Devlog Update 109

We added a deco object pipette/cloning tool:

I think this one has been suggested a couple times, and it really speeds up building quite a bit. Simply select any deco object in the park and you can instantly build copies of it (including the same custom colors and custom size of the selected object). Pretty useful and not too complicated to implement, that are my favorite features :)

Between the Alpha 4 release and a patch for it we’ve started working on some bigger tasks that’ll likely keep us busy for the majority of this month. Luuk started with the scenario designer which will ultimately allow us to offer different starting parks with different settings and challenges instead of just the simple empty flat sandbox you all had to put up with for so long. That’ll come one step at a time though and the first task is just getting some UI working and allowing to create different terrain sizes :)

Meanwhile I’ve started working on something that’ll improve handling of trash and shop resources - you’ll certainly need that in bigger parks :)

More on both of these probably next week once there’s a bit more ready to show.

Devlog Update 108 + Alpha 4

Alpha 4 is now available for download! The full change log is at the end of this post.

Devlog

We added a Spinning Coaster:

And we worked on audio. One of the main problems we had with audio for a long time was that the default way how Unity handles it doesn’t work well with our game due to its near-orthographic perspective. Consider this scene:

There’s a red coaster on the ground and a blue coaster that’s been raised. They are both roughly in the same position on the screen from this view. Now the way Unity figures out what’s audible and what’s not is that you place an “audio listener” somewhere in the scene. You can imagine that it works somewhat like a microphone - everything close to the listener is loud and the further away an audio source is from it the less audible it becomes. The yellow circle in this example shows everything that’s within the audible range of the audio listener:

Looks about right! But if we look at it from another perspective…

…the two coasters are actually not close to each other at all and no matter where we place the audio listener, one of them will always be outside of its range. We could increase the range, but then we’d hear audio sources that are way off-screen.
What we really needed was a way to control the volume of an audio source depending on its position on screen instead of its physical distance to the audio listener, and that has been added now.
This also means that we need to rebalance our audio, so if things sound a bit too loud or too silent currently that’s why :)

Alpha 4 Changelog

- significant performance improvements
- added Spinning Coaster
- added 4D Cinema
- added palm trees
- added customizable colors for some shop products
- added area delete tool
- added controls instructions (beginning of a tutorial system)
- added monitor selection
- added camera scroll/zoom sensitivity settings
- added autosave + save hotkey (Z by default)
- added more rebindable keys
- added detection of performance problems due to mods
- added lateral and longitudinal G visualizations + graphs
- improved audio panning
- improved tracked ride stat visualizations
- improved weather
- improved Janitor behaviour for cleaning dirty toilets
- improved translation support
- increased guest spawn rate by 25%
- fixed stat heatmap visualizations not working on lowest quality settings
- fixed rides saying they have outdated values after loading savegame
- fixed raised objects not being placed at correct height if raising over sloped terrain
- fixed broken employee colors
- fixed errors when trying to load a savegame containing non-existant tracked rides (e.g. missing mods)

Devlog Update 107

Art Stream

It’s Art Stream time again! Join us on Garrets Twitch channel on Wednesday at 1pm PST to chat while watching some new Parkitect art being created.

Devlog

We’re mostly busy with making sure everything still works and runs stable after the engine upgrade. After some days of testing it turned out that the “experimental” improved multithreaded rendering in Unity 5.4 is labeled so for a reason :) We’ll not use it for now which costs a couple FPS compared to last weeks test results, but at least we know that it’s something to look forward to in a future update.

The tracked ride visualizations received an update. So far we’ve only been able to show one value for the entire segment, which was precise enough for most cases but a bit lacking on longer segments like the loops or scaled up curves. Here’s an example showing the velocity:

It shows the train loosing speed as it nears the top of the loop and gaining speed afterwards now, as you’d expect. We also added a second color to distinguish between positive and negative vertical Gs:

(And there’s finally a lateral Gs view too)

And here’s a new 4D Cinema :)

Devlog Update 106

The parks you guys are building are getting crazier all the time, so I’ve spent the last two weeks almost entirely on performance optimizations.
There are three major areas that have been improved.

Rendering

Big Parkitect parks can contain tens or even hundreds of thousands of objects, and Unity was not too great at rendering lots of individual objects so far.
That’s why we’ve been eagerly looking forward to upgrade to Unity 5.4, which we’ve been testing over the last half year or so and which seems stable enough to use now.
Unity 5.4 adds instancing, which is a technique that allows faster rendering of multiple copies of the same object and moves a bunch of work that previously needed to be done on the CPU over to the GPU. Due to the way scenery works in Parkitect the same objects are usually on screen tens or hundreds of times and as a simulation game we need all the CPU time we can get, so that’s perfect :)
They also added experimental support for improved multithreaded rendering, which helps quite a bit as well.

Guests

We want to have as many guests in the park as possible, so they have already received the most attention for optimizations in the past.
There were still some improvements left to be done though, especially for off-screen people.

Mouse picking

Some of the parks you’ve built got so big that even something as seemingly trivial as figuring out what object is below the mouse could become a performance problem.
We’ve previously used Unitys mesh colliders for this; their intended purpose is more for adding physics interactions to a couple of objects, but it worked well enough in the past.
Since the game received scenery and more content though we’ve seen parks were it could take up to a second to figure out what’s below the mouse in extreme cases…so we’ve replaced that with a custom solution now that’s more suited for our needs and brings that time down to a couple milliseconds.

Results

We’ve tested with a couple of different scenes. Here are some of the results on two of our test systems (graphs showing milliseconds required to calculate each frame, so less is better):

More stuff

Stuff going wrong can cause performance issues as well. Especially right after game updates we’re receiving a bunch of reports about strange issues and performance problems that are usually caused by mods not being compatible with the newest game version yet. Luuk worked on this error window that identifies broken mods and contains the error message so that the problem can be reported to the mod author:

Tim worked on allowing to set specific colors for certain shop products:

And on this area delete tool that lets you select a bunch of objects at once (like the selection tool for creating blueprints) and then delete them:

And we’re displaying some of the controls on screen now depending on context, which should help new players (can be disabled). Eventually this should evolve into a proper tutorial.

And there are some new palm trees: